﻿// 203 数字统计.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <deque>

using namespace std;
/*
http://oj.daimayuan.top/course/7/problem/415

给你一个长度为n的数组，数组里的每一个数字都大于等于它之前的那个数字。

现在要你统计对于每个位置的数字a[i]，在它之前的所有数字有几个大于等于 a[i]–5。

输入格式
第一行一个整数 n。

接下来一行是n个正整数。

输出格式
输出n个数，第i个数表示在a[1],a[2],...,a[i−1]中，有多少个数字大于等于 a[i]–5。

样例输入
10
1 2 3 3 6 8 8 9 9 10
样例输出
0 1 2 3 4 3 4 3 4 5
数据规模
对于所有数据，保证 n≤100000, 1≤a[i]≤1000000。
*/

const int N = 100010;
int n;
int arr[N];
deque<int> deq;


int main()
{
	cin >> n;

	for (int i = 0; i < n; i++) {
		cin >> arr[i];
	}

	for (int i = 0; i < n; i++) {
		int x = arr[i];
		while (!deq.empty() && arr[deq.front()] < x - 5) deq.pop_front();
		cout << deq.size() << " ";
		deq.push_back(i);
	}
	cout << endl;

	return 0;
}

 